home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…tion Library 2 (Reseller) / Apple R&P Lib Reseller v2.0.iso / 3-Demos / HyperCard Demos / HyperMovies / CL⁄1 / CL_1 / background_3788.txt < prev    next >
Text File  |  1989-10-27  |  12KB  |  466 lines

  1. -- background: 3788 from stack: in
  2. -- bmap block id: 8808
  3. -- flags: 4000
  4. -- background id: 0
  5. -- name: Sales Rep Cards
  6. ----- HyperTalk script -----
  7. on openCard
  8.   global quotaHasChanged
  9.   if inDebug() then pass openCard
  10.  
  11.   set lockscreen to true
  12.  
  13.   put word 2 of the short name of this card into repNum
  14.   get repInfo(repNum)
  15.   put line 1 of it into regionNum
  16.   put line 2 of it into quota
  17.   put line 3 of it into sales
  18.   put 100*sales/quota into percent
  19.  
  20.   put repNum into line 4 of field "Sales Rep Data"
  21.   put regionNum into line 5 of field "Sales Rep Data"
  22.   set name of card button 1 to addComma(quota) & "  >>"
  23.   put addComma(sales) into field "Rep Sales"
  24.   put formatPercent(percent) into card field "Percent of Quota"
  25.  
  26.   get char 1 to 3 of quota
  27.   put 306 - it into height
  28.   get the loc of card button 1
  29.   put height into item 2 of it
  30.   set loc of card button 1 to it
  31.   AdjustQuotaBkgnd height
  32.   RedrawRepChart percent
  33.   set lockscreen to false
  34.   put false into quotaHasChanged
  35.   hide field "Status Backdrop"
  36.   hide field "Status"
  37.   pass openCard
  38. end openCard
  39.  
  40. on closeCard
  41.   global QuotaHasChanged
  42.   if inDebug() then pass closeCard
  43.   if QuotaHasChanged then
  44.     if UpdateRealFigures () then
  45.       --update the corresponding bar in the region chart
  46.       global updateThisBar
  47.       put word 2 of short name of this card into updateThisBar
  48.     end if
  49.     put false into QuotaHasChanged
  50.   end if
  51.   put empty into field "Status"
  52.   hide field "Status Backdrop"
  53.   hide field "Status"
  54.   pass closeCard
  55. end closeCard
  56.  
  57. on RedrawRepChart percent
  58.   set lockScreen to true
  59.   put the rect of bkgnd button "Rep Quota" into area
  60.   choose select tool
  61.   drag from item 1 of area,0 to item 3 to 4 of area
  62.   doMenu "Clear Picture"
  63.   set lockScreen to false
  64.   DrawLargeBar area,percent
  65.   put formatPercent (percent) into card field "Percent of Quota"
  66.   choose browse tool
  67. end RedrawRepChart
  68.  
  69. on movePointer
  70.   global nuQuota, quotaHasChanged
  71.   put the loc of the target into myLoc
  72.   get the mouseV
  73.   repeat until the mouse is up
  74.     get the mouseV
  75.     put it into item 2 of myLoc
  76.     set the loc of the target to myLoc
  77.     put 306 - it into nuQuota
  78.     put "000.00" after nuQuota
  79.     set the name of the target to addComma (nuQuota) & "  >>"
  80.   end repeat
  81.   AdjustQuotaBkgnd it
  82.   put true into quotaHasChanged
  83.   RedoLocalFigures
  84. end movePointer
  85.  
  86. -- This is called by the button that adjusts the quota
  87. on RedoLocalFigures
  88.   global nuQuota
  89.   put dataCardName() into cardName
  90.   put word 2 of short name of this card into repNum
  91.   put itemOffset(repNum,field "rep_nr" of card cardName) into itemNum
  92.   get item itemNum of field "sales" of card cardName
  93.   put formatPercent (100*it/nuQuota) into percent
  94.   put percent into card field "Percent of Quota"
  95. end RedoLocalFigures
  96.  
  97. -- This is called on closeCard if the QuotaHasChanged
  98. function UpdateRealFigures
  99. global nuQuota, ChangedList, QuotaHasChanged
  100. put DataCardName() into cardName
  101. put SalesRepNum() into repNum
  102. put itemOffset(repNum,field "rep_nr" of card cardName) into itemNum
  103. --put field "Item Offset" into itemNum
  104. put addComma (nuQuota) into quota
  105. answer "Change the quota to" && quota & "?" with "No" or "OK"
  106. set cursor to 4
  107. if it is "OK" then
  108.   show field "Status Backdrop"
  109.   show field "Status"
  110.   put "Updating record..." into field "Status"
  111.  
  112.   -- Change the quota for this rep in the staff table
  113.   put field "quota" of card cardName into regionQuotas
  114.   put nuQuota into item itemNum of regionQuotas
  115.   put regionQuotas into field "quota" of card cardName
  116.   put card field "Percent of Quota" into percent
  117.   put empty into last char of percent
  118.   put percent into item itemNum of field "percent" of card cardName
  119.   put "SendSalesRepData" && repNum & "," && nuQuota & "," && quote & cardName & quote into theMessage
  120.  
  121.   send theMessage to card cardName
  122.  
  123.   put empty into field "Status"
  124.   wait 45 ticks
  125.   put "Update completed" into field "Status"
  126.  
  127.   -- Change the regional quota in the all-region data card
  128.   put RegionNum() into region
  129.   put 0 into total
  130.   repeat with i = 1 to the number of items in regionQuotas
  131.     add item i of regionQuotas to total
  132.   end repeat
  133.   put field "quota" of card "All Regions" into allQuotas
  134.   put itemOffset (region, AllRegionNums()) into i
  135.   put addDecimal (total) into total
  136.   put total into item i of allQuotas
  137.   put allQuotas into field "quota" of card "All Regions"
  138.   put item i of field "sales" of card "All Regions" into sales
  139.   put formatPercent(sales/total*100) into percent
  140.   put empty into last char of percent
  141.   put percent into item i of field "percent" of card "All Regions"
  142.  
  143.   -- Change the regional quota in the offices table in host database
  144.   put "SendRegionData" && region & "," && total into theMessage
  145.   send theMessage to card "All Regions"
  146.  
  147.   hide field "Status Backdrop"
  148.   hide field "Status"
  149.   return true
  150.  
  151. else
  152.   -- retrieve quota & percent from dataCard
  153.   -- restore fields & graph on this card
  154.   put item itemNum of field "quota" of card cardName into quota
  155.   get char 1 to 3 of quota
  156.   put 306 - it into nuHeight
  157.   AdjustQuotaBkgnd nuHeight
  158.   get loc of card button 1
  159.   put nuHeight into item 2 of it
  160.   set loc of card button 1 to it
  161.   set name of card button 1 to addComma (quota) & "  >>"
  162.   put item itemNum of field "percent" of card cardName into percent
  163.   RedrawRepChart percent
  164.   put false into QuotaHasChanged
  165.   return false
  166. end if
  167. end UpdateRealFigures
  168.  
  169. function SalesRepNum
  170. return word 2 of the short name of this card
  171. end SalesRepNum
  172.  
  173. function RegionNum
  174. get SalesRepNum()
  175. return line 5 of field "Sales Rep Data"
  176. end RegionNum
  177.  
  178. function DataCardName
  179. return "Region" && RegionNum()
  180. end DataCardName
  181.  
  182. function ChartCardName
  183. return "Region" && RegionNum() && "Chart"
  184. end ChartCardName
  185.  
  186. on AdjustQuotaBkgnd nuHeight
  187.   set cursor to 4
  188.   set lockScreen to true
  189.   get the rect of bkgnd btn "Rep Quota"
  190.   put nuHeight into item 2 of it
  191.   set the rect of bkgnd btn "Rep Quota" to it
  192.  
  193.   get the rect of bkgnd btn "Rep Quota shadow"
  194.   put nuHeight+5 into item 2 of it
  195.   set the rect of bkgnd btn "Rep Quota shadow" to it
  196.   set lockScreen to false
  197. end AdjustQuotaBkgnd
  198.  
  199. on xAdjustQuotaBkgnd nuHeight
  200.   put 300000 into maxQuota
  201.   put 0 into minQuota
  202.   set cursor to 4
  203.   set lockScreen to true
  204.   set editBkgnd to true
  205.   get the rect of bkgnd btn "Rep Quota"
  206.   put nuHeight into item 2 of it
  207.   set the rect of bkgnd btn "Rep Quota" to it
  208.   put item 4 of it into bottom
  209.   put item 3 of it into left
  210.   put item 2 of it into top
  211.  
  212.   choose select tool
  213.   drag from left-1, bottom to 512, 0
  214.   doMenu "Clear Picture"  -- clear right side of screen
  215.   choose line tool
  216.   set lineSize to 6
  217.   drag from left+2, bottom+2 to left+2, top+8   -- redraw the shadow
  218.   choose browse tool
  219.   set lockScreen to false
  220. end xAdjustQuotaBkgnd
  221.  
  222. function SalesDataForRep repNum, regionNum
  223. put "Region" && regionNum into cardName
  224. get itemOffset (repNum, field "rep_nr" of card cardName)
  225. put item it of field "sales" of card cardName into data
  226. put item it of field "percent" of card cardName into item 2 of data
  227. put item it of field "quota" of card cardName into item 3 of data
  228. return data
  229. end SalesDataForRep
  230.  
  231. on openBackground
  232.   push recent card
  233. end openBackground
  234.  
  235.  
  236.  
  237.  
  238. -- part 1 (field)
  239. -- low flags: 01
  240. -- high flags: 2000
  241. -- rect: left=5 top=185 right=268 bottom=80
  242. -- title width / last selected line: 0
  243. -- icon id / first selected line: 0 / 0
  244. -- text alignment: 65535
  245. -- font id: 20
  246. -- text size: 12
  247. -- style flags: 0
  248. -- line height: 14
  249. -- part name: Labels
  250.  
  251.  
  252. -- part 2 (field)
  253. -- low flags: 01
  254. -- high flags: 2002
  255. -- rect: left=186 top=5 right=52 bottom=393
  256. -- title width / last selected line: 0
  257. -- icon id / first selected line: 0 / 0
  258. -- text alignment: 1
  259. -- font id: 20
  260. -- text size: 18
  261. -- style flags: 0
  262. -- line height: 20
  263. -- part name: Title
  264.  
  265.  
  266. -- part 23 (field)
  267. -- low flags: 81
  268. -- high flags: 2002
  269. -- rect: left=38 top=11 right=29 bottom=89
  270. -- title width / last selected line: 0
  271. -- icon id / first selected line: 0 / 0
  272. -- text alignment: 1
  273. -- font id: 3
  274. -- text size: 9
  275. -- style flags: 256
  276. -- line height: 12
  277. -- part name: item offset
  278.  
  279.  
  280. -- part 3 (field)
  281. -- low flags: 01
  282. -- high flags: 2000
  283. -- rect: left=78 top=185 right=268 bottom=271
  284. -- title width / last selected line: 0
  285. -- icon id / first selected line: 0 / 0
  286. -- text alignment: 0
  287. -- font id: 20
  288. -- text size: 12
  289. -- style flags: 256
  290. -- line height: 14
  291. -- part name: Sales Rep Data
  292.  
  293.  
  294. -- part 28 (button)
  295. -- low flags: 00
  296. -- high flags: 4002
  297. -- rect: left=412 top=186 right=306 bottom=502
  298. -- title width / last selected line: 0
  299. -- icon id / first selected line: 0 / 0
  300. -- text alignment: 1
  301. -- font id: 0
  302. -- text size: 12
  303. -- style flags: 0
  304. -- line height: 16
  305. -- part name: Rep Quota shadow
  306.  
  307.  
  308. -- part 10 (button)
  309. -- low flags: 00
  310. -- high flags: 0002
  311. -- rect: left=407 top=181 right=301 bottom=497
  312. -- title width / last selected line: 0
  313. -- icon id / first selected line: 0 / 0
  314. -- text alignment: 1
  315. -- font id: 0
  316. -- text size: 12
  317. -- style flags: 0
  318. -- line height: 16
  319. -- part name: Rep Quota
  320.  
  321.  
  322. -- part 14 (field)
  323. -- low flags: 00
  324. -- high flags: 2000
  325. -- rect: left=409 top=302 right=327 bottom=498
  326. -- title width / last selected line: 0
  327. -- icon id / first selected line: 0 / 0
  328. -- text alignment: 1
  329. -- font id: 3
  330. -- text size: 10
  331. -- style flags: 256
  332. -- line height: 15
  333. -- part name: Rep Sales
  334.  
  335.  
  336. -- part 15 (field)
  337. -- low flags: 01
  338. -- high flags: 0000
  339. -- rect: left=13 top=273 right=337 bottom=371
  340. -- title width / last selected line: 0
  341. -- icon id / first selected line: 0 / 0
  342. -- text alignment: 0
  343. -- font id: 20
  344. -- text size: 12
  345. -- style flags: 0
  346. -- line height: 14
  347. -- part name: 
  348.  
  349.  
  350. -- part 20 (button)
  351. -- low flags: 00
  352. -- high flags: 4000
  353. -- rect: left=185 top=4 right=53 bottom=395
  354. -- title width / last selected line: 0
  355. -- icon id / first selected line: 0 / 0
  356. -- text alignment: 1
  357. -- font id: 0
  358. -- text size: 12
  359. -- style flags: 0
  360. -- line height: 16
  361. -- part name: 
  362. ----- HyperTalk script -----
  363. on mouseUp
  364.   set the hilite of the target to true
  365.   visual effect iris close
  366.   go to card ChartCardName()
  367. end mouseUp
  368.  
  369.  
  370.  
  371. -- part 21 (button)
  372. -- low flags: 00
  373. -- high flags: 0000
  374. -- rect: left=10 top=5 right=183 bottom=179
  375. -- title width / last selected line: 0
  376. -- icon id / first selected line: 0 / 0
  377. -- text alignment: 1
  378. -- font id: 0
  379. -- text size: 12
  380. -- style flags: 0
  381. -- line height: 16
  382. -- part name: 
  383. ----- HyperTalk script -----
  384. on mouseUp
  385.   visual effect iris close
  386.   go to card ChartCardName()
  387. end mouseUp
  388.  
  389.  
  390.  
  391.  
  392. -- part 22 (field)
  393. -- low flags: 01
  394. -- high flags: 2000
  395. -- rect: left=407 top=316 right=337 bottom=501
  396. -- title width / last selected line: 0
  397. -- icon id / first selected line: 0 / 0
  398. -- text alignment: 1
  399. -- font id: 3
  400. -- text size: 10
  401. -- style flags: 0
  402. -- line height: 13
  403. -- part name: Sales Label
  404.  
  405.  
  406. -- part 24 (field)
  407. -- low flags: 80
  408. -- high flags: 2004
  409. -- rect: left=78 top=206 right=265 bottom=386
  410. -- title width / last selected line: 0
  411. -- icon id / first selected line: 0 / 0
  412. -- text alignment: 1
  413. -- font id: 3
  414. -- text size: 12
  415. -- style flags: 256
  416. -- line height: 16
  417. -- part name: Status Backdrop
  418.  
  419.  
  420. -- part 25 (field)
  421. -- low flags: 80
  422. -- high flags: 2000
  423. -- rect: left=78 top=222 right=256 bottom=385
  424. -- title width / last selected line: 0
  425. -- icon id / first selected line: 0 / 0
  426. -- text alignment: 1
  427. -- font id: 3
  428. -- text size: 12
  429. -- style flags: 256
  430. -- line height: 16
  431. -- part name: Status
  432.  
  433.  
  434. -- part 26 (button)
  435. -- low flags: 00
  436. -- high flags: 2000
  437. -- rect: left=183 top=134 right=184 bottom=231
  438. -- title width / last selected line: 0
  439. -- icon id / first selected line: 0 / 0
  440. -- text alignment: 1
  441. -- font id: 0
  442. -- text size: 12
  443. -- style flags: 0
  444. -- line height: 16
  445. -- part name: Region Chart
  446. ----- HyperTalk script -----
  447. on mouseUp
  448.   visual effect iris close
  449.   go to card ChartCardName()
  450. end mouseUp
  451.  
  452. on xmouseUp
  453.   global QuotaHasChanged
  454.   visual effect iris close
  455.   put line 5 of field "Sales Rep Data" into regionNum
  456.   if QuotaHasChanged then
  457.     put UpdateRealFigures () into PermanentChange
  458.     go to card "Region" && regionNum && "Chart"
  459.     if PermanentChange then DoGraph
  460.     put false into QuotaHasChanged
  461.   else
  462.     go to card "Region" && regionNum && "Chart"
  463.   end if
  464. end xmouseUp
  465.  
  466.